#include "util.h"

void inserirBacklog(Backlog *bac)
{
	int mid;
	int i;
	char tmp[100];
	
	printf("Digite a mensagem\n");
	
	scanf ("%s", &tmp[0]);
	
	mid = maiorIndice(bac);
	
	for(i = 0; i < MAX; i++)
	{
		if(bac[i].registro[0] == '\0')
		{
			strcpy(bac[i].registro, tmp);
			bac[i].id = mid + 1;
			return;
		}
	}
	printf("Registros lotados, \n");
	return;
}

void sair(void)
{
	exit(0);
}

void mostrarBacklog(Backlog *bac)
{
	int i;
	
	for(i = 0; i < MAX; i++)
	{
		if(bac[i].registro[0] != '\0')
		{	
			printf("%d - %s\n", bac[i].id, bac[i].registro);
		}
	}
	return;
}

void excluirBacklog(Backlog *bac)
{
	int tmp, i;
	
	printf("Qual registro deseja apagar? \n");
	scanf("%d", &tmp);
	
	for(i = 0 ; i < MAX; i++)
	{
		if(bac[i].id == tmp)
		{
			TRACE(("%d\n", tmp));
			bac[i].registro[0] = '\0'; 
		}
	}
	
	return;
}

void init(Backlog *bac)
{
	int i;
	
	for(i = 0 ; i < MAX; i++)
	{
		bac[i].registro[0] = '\0'; 
	}
}

int maiorIndice(Backlog *bac)
{
	int i;
	int mid = 0;
	
	for(i = 0; i < MAX; i++)
	{
		if(bac[i].registro[0] != '\0')//verifica se tem registro guardado
		{	
			if(bac[i].id > mid)
			{
				mid = bac[i].id;
			}
		}
	}
	return mid;
}

void salvarBacklog(Backlog *bac)
{
	int fd;
	
	fd = open("registro.txt", O_RDWR | O_CREAT, S_IRWXU); //cria se não existir um arquivo,se existir abre-o
	
	write(fd, bac, sizeof(Backlog)*MAX);
	
	close(fd);
}